﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Beeldbankmvc.Models
{
    public class CityRepository
    {
        BeeldbankLinqDataContext db = new BeeldbankLinqDataContext();

        public IEnumerable<CityModel> getCityAll()
        {
            return from o in FindAll()
                   orderby o.Plaats, o.Provincie
                   select new CityModel
                   {
                       Id = o.Id,
                       Plaats = o.Plaats,
                       Provincie = o.Provincie
                   };
        }

        public CityModel FindOne(int id)
        {
            CityModel CityModel = new CityModel();

            BEELDBANK_PLAATS_PROVINCIE o = FindAll().Where(p => p.Id == id).First();
            if (o != null)
            {
                CityModel.Id = o.Id;
                CityModel.Plaats = o.Plaats;
                CityModel.Provincie = o.Provincie;
            }
            return CityModel;
        }

        public CityModel FindOne(string Plaats, string Provincie)
        {
            CityModel CityModel = new CityModel();

            BEELDBANK_PLAATS_PROVINCIE o = FindAll().SingleOrDefault(m => m.Plaats.Equals(Plaats) && m.Provincie.Equals(Provincie));
            if (o != null)
            {
                CityModel.Id = o.Id;
                CityModel.Plaats = o.Plaats;
                CityModel.Provincie = o.Provincie;
            }
            return CityModel;
        }

        public void Create(CityModel CityModel)
        {
            BEELDBANK_PLAATS_PROVINCIE o = new BEELDBANK_PLAATS_PROVINCIE();
            if (o != null)
            {
                o.Id = CityModel.Id;
                o.Plaats = CityModel.Plaats;
                o.Provincie = CityModel.Provincie;
            }
            db.BEELDBANK_PLAATS_PROVINCIEs.InsertOnSubmit(o);
        }

        public void Update(CityModel CityModel)
        {
            BEELDBANK_PLAATS_PROVINCIE o = FindAll().Where(p => p.Id == CityModel.Id).First();
            if (o != null)
            {
                o.Id = CityModel.Id;
                o.Plaats = CityModel.Plaats;
                o.Provincie = CityModel.Provincie;
            }
        }

        public void Delete(int id)
        {
            BEELDBANK_PLAATS_PROVINCIE o = FindAll().Where(p => p.Id == id).First();

            db.BEELDBANK_PLAATS_PROVINCIEs.DeleteOnSubmit(o);
        }

        private IQueryable<BEELDBANK_PLAATS_PROVINCIE> FindAll()
        {
            return db.BEELDBANK_PLAATS_PROVINCIEs;
        }

        public void Save()
        {
            db.SubmitChanges();
        }
    }
}